package com.ls.bpmn.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ls.bpmn.dto.*;
import com.ls.bpmn.entity.BpmnProcinst;
import com.ls.bpmn.from.TaskDoneQueryForm;
import com.ls.bpmn.from.TaskQueryForm;
import com.ls.bpmn.from.TaskWorkQueryForm;

import java.util.List;

/**
 * @Author lisheng
 * @Date 2025/05/07 01:05
 **/
public interface IProcessService extends IService<BpmnProcinst> {
    /**
     * 流程实例创建接口
     * @param dto
     * @return
     */
    StartReturnDTO start(ProcessStartDTO dto) throws Exception;

    /**
     * 任务提交接口
     * @param dto
     * @return
     */
    SubmitReturnDTO submit(ProcessSubmitDTO dto) throws Exception;

    /**
     * 获取带处理意见的流程活动记录
     * @param processInstanceId
     * @param parentActInstId
     * @return
     */
    List<HistoricActivityInstanceDTO> findActivityInstanceDTO(String processInstanceId, String parentActInstId);

    /**
     * 获取全部工单列表接口
     * @param form
     * @return
     */
    Page<TaskListDTO> findWorkOrder(TaskWorkQueryForm form);

    /**
     * 待领取/待处理任务列表获取接口
     * @param form
     * @return
     */
    Page<TaskDTO> todo(TaskQueryForm form);

    /**
     * 已处理任务列表获取接口
     * @param form
     * @return
     */
    Page<TaskDTO> done(TaskDoneQueryForm form);
}
